/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControladoresUI;

import Entidades.Asignacionseccioncurso;
import Entidades.Carrera;
import Entidades.Catedratico;
import Entidades.Ciclo;
import Entidades.Curso;
import Entidades.Jornada;
import Entidades.Seccion;
import Entidades.Semestre;
import Entidades.Tipocurso;
import Entidades.Usuario;
import Ingresos.IAsignacionCicloCarrera;
import Ingresos.ICarrera;
import Ingresos.ICiclo;
import Ingresos.ICurso;
import Ingresos.ITipoCurso;
import ManagersUI.CursoModificarManager;
import Modelos.AsignacionSeccionCursoModel;
import Modelos.CatedraticoModel;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Hyperlink;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javax.swing.JOptionPane;

/**
 *

*/
public class CursoModificarController {
    Curso registro;
    CursoModificarManager cursoModificarManager;
    @FXML private TextField txtCurso;
    @FXML private TextField txtCreditosPracticos;
    @FXML private TextField txtCreditosTeoricos;
    @FXML private TextField txtPeriodos;
    @FXML private ComboBox cmbTipoCurso;
       @FXML private TextArea txtObservaciones;
      
    @FXML private CheckBox checkExtraordinario;
    @FXML private ComboBox cmbCiclo;
    @FXML private ComboBox cmbCarrera;
    
    @FXML private TableView<Asignacionseccioncurso> tblSecciones;
    @FXML private TableColumn<Asignacionseccioncurso, Seccion> seccionColumna;
    @FXML private TableColumn<Asignacionseccioncurso, Jornada> jornadaColumna;
    @FXML private TableColumn<Asignacionseccioncurso, Integer> estudiantesColumna;
    @FXML private TableColumn<Asignacionseccioncurso, Semestre> semestreColumna;
    @FXML private TableColumn<Asignacionseccioncurso, Curso> cursoColumna;
    @FXML private TableColumn<Asignacionseccioncurso, Catedratico> catedraticoColumna;
    
    
    public void initialize() {}
  
    public void initManager(final CursoModificarManager cursoModificarManager,Curso registro) {
        this.cursoModificarManager = cursoModificarManager;
        this.registro = registro;    
         cargarEdificio();         
         cargarCiclo();
         cargarCarrera();
         cargarDatos();
         cargarTabla();
    }
    public void cargarDatos(){
        this.txtCurso.setText(this.registro.getNombre());    
        this.txtCreditosTeoricos.setText(Integer.toString(this.registro.getCreditosteoricos()));
        this.txtCreditosPracticos.setText(Integer.toString(this.registro.getCreditospracticos()));
        this.txtPeriodos.setText(Integer.toString(this.registro.getPeriodosSemanales()));
        this.txtObservaciones.setText(this.registro.getObservaciones());
        this.cmbCarrera.setValue(this.registro.getAsignacionCicloCarreraidAsignacionCicloCarrera().getCarreraidCarrera());
        this.cmbCiclo.setValue(this.registro.getAsignacionCicloCarreraidAsignacionCicloCarrera().getCicloidCiclo());
        //this.checkPractica.setSelected(this.registro.getSeccionPractica());
        this.checkExtraordinario.setSelected(this.registro.getExtraordinario());
        this.cmbTipoCurso.setValue(this.registro.getTipoCursoidTipoCurso());
    }
    public void cargarEdificio(){
        this.cmbTipoCurso.setPromptText("Tipo Curso");
        ITipoCurso manejo = new ITipoCurso();
        this.cmbTipoCurso.getItems().clear();
        this.cmbTipoCurso.getItems().addAll(manejo.mostraTodo());
    }
    public void cargarCarrera(){
        this.cmbCarrera.setPromptText("Carrera");
        ICarrera manejo = new ICarrera();
        this.cmbCarrera.getItems().clear();
        this.cmbCarrera.getItems().addAll(manejo.mostrarTodoFalse());
        this.cmbCarrera.setValue(this.cmbCarrera.getItems().get(0));
    }
    public void cargarCiclo(){
        this.cmbCiclo.setPromptText("Ciclo");
        ICiclo manejo = new ICiclo();
        this.cmbCiclo.getItems().clear();
        this.cmbCiclo.getItems().addAll(manejo.mostrarTodoFalse());
        this.cmbCiclo.setValue(this.cmbCiclo.getItems().get(0));
    }
    @FXML
    private void modificarCurso(ActionEvent event){
        ICurso manejo = new ICurso();
         IAsignacionCicloCarrera ciclocarrera = new IAsignacionCicloCarrera();
        this.registro.setNombre(txtCurso.getText());
        this.registro.setCreditosteoricos(Short.parseShort(txtCreditosTeoricos.getText()));
        this.registro.setCreditospracticos(Short.parseShort(txtCreditosPracticos.getText()));
        this.registro.setPeriodosSemanales(Short.parseShort(txtPeriodos.getText()));
        //this.registro.setSeccionPractica(this.checkPractica.isSelected());
        this.registro.setExtraordinario(this.checkExtraordinario.isSelected());
        this.registro.setTipoCursoidTipoCurso((Tipocurso)this.cmbTipoCurso.getValue());
       this.registro.setAsignacionCicloCarreraidAsignacionCicloCarrera(ciclocarrera.obtenerCicloCarrera((Carrera) this.cmbCarrera.getValue(), (Ciclo) this.cmbCiclo.getValue()));
        manejo.modificarId(registro);
        JOptionPane.showMessageDialog(null, "Se ha modificado el curso.");
             cursoModificarManager.showPnlCursoInicio(null);
    }
    @FXML
    private void RegresarInicio(ActionEvent event){
      cursoModificarManager.showPnlCursoInicio(null);
    }
    public void cargarTabla(){
        AsignacionSeccionCursoModel CursoSeccionModel = new AsignacionSeccionCursoModel(null); 
        tblSecciones.setItems(CursoSeccionModel.getPersonData());
        catedraticoColumna.setCellValueFactory(new PropertyValueFactory<Asignacionseccioncurso, Catedratico>("CatedraticoidCatedratico"));
        seccionColumna.setCellValueFactory(new PropertyValueFactory<Asignacionseccioncurso, Seccion>("SeccionidSeccion"));
        jornadaColumna.setCellValueFactory(new PropertyValueFactory<Asignacionseccioncurso, Jornada>("JornadaidJornada"));
        estudiantesColumna.setCellValueFactory(new PropertyValueFactory<Asignacionseccioncurso, Integer>("numeroEstudiantes"));
        semestreColumna.setCellValueFactory(new PropertyValueFactory<Asignacionseccioncurso, Semestre>("SemestreidSemestre"));
        cursoColumna.setCellValueFactory(new PropertyValueFactory<Asignacionseccioncurso, Curso>("CursoidCurso"));
       
    }
}
